SlideShare a Scribd company logo
1 of 19
Download to read offline
大型视频网站单点分析与可用性提升



     Achilles Xu
        2011.03
议程

   单点分类
   常规去单点方法介绍
   案例分析
   总结
单点分类

   数据单点
   应用单点
   性能单点
   地域单点
常规去单点方法介绍

   DNS、调度
   虚拟IP、nginx upstream、ha-proxy
   主从热备、RAID、分布式存储
后台流程



用户    上传接口

             转码集群     分发中心

编辑    内容平台



     冷点存储


               热点存储
服务流程


             1
用户    播放器            DNS

                 2



        3                  调度接口



                                  存储数据库
     冷热点存储
上传接口
   问题:
     全国用户访问

   解决方法:
     使用动态DNS按地域分调用户
       域名再做随机哈希:upload1 … upload4
内容平台
   分析:
     编辑主要集中在北京甚至公司内网
       外地编辑配置合适的代理即可
转码集群
   情况和问题:
     转码设备集中在北京
       全国的上传接口都要往转码集群传送文件
       大的文件会消耗较长时间、阻塞队列

   解决办法:
     使用较好的链路(北京电信、北京网通)
       未来改成边缘转码结构,但是分发系统也要统一规划
        调整
       按视频事长划分不同的队列(长视频转码队列、普通
        队列、短视频转码队列)
分发中心
   情况分析
       转码中心和分发中心都处在北京,彼此网络畅通,转码后的
        视频文件能够瞬间传到分发中心
       抓站程序和编辑在夜间上传大量视频,无法在有限时间内(
        一天)传送出去,中心出口带宽成为瓶颈
       全网都从中央抓取视频,速度太慢
       如果边缘的服务器尚未完成视频抓取,那么用户流量就全压
        在中央。

   解决方法
      P2P方式,或者叫SP2SP方式,只要从中央传送出去一份,外面
       的各服务器就会就近互相抓取。
       切割视频,减小单个视频大小
       升级成按块分发。
       升级使调度精确到设备。
       未来转码集群边缘化了,分发中心也不存在了。
服务节点


                存储1                            存储2


                            虚拟IP


 C1   C2   C3    C4   C5   C6   C7   C8   C9   C10   C11   C12


                            虚拟IP


Domain1    Domain2    Domain3   Domain4    Domain5    Domain6
服务节点分析
   现状
     存储和cache的容量比大概是6:1
       每两台cache存储的内容相同
       设备占用较多,内容冗余较多

   未来措施
     考虑去除cache层
       考虑一致性哈希
       IP对外(调度精确到设备)
调度系统
   现状
     调度数据库采用master/slave模式,其读库在全国有一定
      分布
       调度设备的分布比读库的分布要广
       由用户访问触发,在调度设备上对部分数据做本地
        cache
       本地cache以视频id计算二级hash目录,每个视频的相关信
        息记录在一个文件里
       热点视频的本地cache是主动推送的
       写库是单点,不过主要是内部系统写

   措施
     未来考虑采用mysql cluster
       分表写入
播放器
   一个点不可用自动尝试其他点
   该视频所有点均没有时,根据标题搜索播放相似视频
审核系统
   人手不够
   机器预审
   12画面
   减少操作
   允许误杀,接投诉可快速回复
评论和点击
   实时更新memcached
   memcached每5分钟写入数据库
其他细节
   squid单进程浪费多核运算能力(启多实例或者把运算分到
    外部进程)
   单个磁盘损坏可能会吊死所有进程(进程和磁盘绑定)
   使用容量较小的磁盘,提高并发IO能力
总结
   尽量使所有系统都可横向扩展
   提前考虑系统中的大文件传输,并尽量将其边缘化
   分析所有环节、尽量减少环节
   避免重复计算(如:IP归属)
   cache
谢谢!

More Related Content

What's hot

Operation and Maintenance of Large-Scale All-Flash Memory Ceph Storage Cluste...
Operation and Maintenance of Large-Scale All-Flash Memory Ceph Storage Cluste...Operation and Maintenance of Large-Scale All-Flash Memory Ceph Storage Cluste...
Operation and Maintenance of Large-Scale All-Flash Memory Ceph Storage Cluste...Ceph Community
 
淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践Feng Yu
 
Ceph Day Beijing - Leverage Ceph for SDS in China Mobile
Ceph Day Beijing - Leverage Ceph for SDS in China MobileCeph Day Beijing - Leverage Ceph for SDS in China Mobile
Ceph Day Beijing - Leverage Ceph for SDS in China MobileDanielle Womboldt
 
Application and Practice of Ceph in China Telecom Intensive Tianyi HD Project...
Application and Practice of Ceph in China Telecom Intensive Tianyi HD Project...Application and Practice of Ceph in China Telecom Intensive Tianyi HD Project...
Application and Practice of Ceph in China Telecom Intensive Tianyi HD Project...Ceph Community
 
Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践Feng Yu
 
Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言Feng Yu
 
“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosql“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosqlknuthocean
 
cdn的那些事儿
cdn的那些事儿cdn的那些事儿
cdn的那些事儿rfyiamcool
 
美团技术沙龙04 - Kv Tair best practise
美团技术沙龙04 - Kv Tair best practise 美团技术沙龙04 - Kv Tair best practise
美团技术沙龙04 - Kv Tair best practise 美团点评技术团队
 
Cephfs架构解读和测试分析
Cephfs架构解读和测试分析Cephfs架构解读和测试分析
Cephfs架构解读和测试分析Yang Guanjun
 
Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结redhat9
 
Hybrid Cloud Based on Ceph Object Storage - ShanChun
Hybrid Cloud Based on Ceph Object Storage - ShanChunHybrid Cloud Based on Ceph Object Storage - ShanChun
Hybrid Cloud Based on Ceph Object Storage - ShanChunCeph Community
 
低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索Feng Yu
 
應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局Alex Lau
 
Mr&ueh数据库方面
Mr&ueh数据库方面Mr&ueh数据库方面
Mr&ueh数据库方面Tianwei Liu
 
开源应用日志收集系统
开源应用日志收集系统开源应用日志收集系统
开源应用日志收集系统reinhardx
 
Redis cluster那些事儿
Redis cluster那些事儿Redis cluster那些事儿
Redis cluster那些事儿rfyiamcool
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at TaobaoJoshua Zhu
 
盛大游戏运维体系
盛大游戏运维体系盛大游戏运维体系
盛大游戏运维体系Ken Liu
 
Noip2 stack buffer overflow
Noip2 stack buffer overflowNoip2 stack buffer overflow
Noip2 stack buffer overflowb0920075
 

What's hot (20)

Operation and Maintenance of Large-Scale All-Flash Memory Ceph Storage Cluste...
Operation and Maintenance of Large-Scale All-Flash Memory Ceph Storage Cluste...Operation and Maintenance of Large-Scale All-Flash Memory Ceph Storage Cluste...
Operation and Maintenance of Large-Scale All-Flash Memory Ceph Storage Cluste...
 
淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践
 
Ceph Day Beijing - Leverage Ceph for SDS in China Mobile
Ceph Day Beijing - Leverage Ceph for SDS in China MobileCeph Day Beijing - Leverage Ceph for SDS in China Mobile
Ceph Day Beijing - Leverage Ceph for SDS in China Mobile
 
Application and Practice of Ceph in China Telecom Intensive Tianyi HD Project...
Application and Practice of Ceph in China Telecom Intensive Tianyi HD Project...Application and Practice of Ceph in China Telecom Intensive Tianyi HD Project...
Application and Practice of Ceph in China Telecom Intensive Tianyi HD Project...
 
Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践
 
Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言
 
“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosql“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosql
 
cdn的那些事儿
cdn的那些事儿cdn的那些事儿
cdn的那些事儿
 
美团技术沙龙04 - Kv Tair best practise
美团技术沙龙04 - Kv Tair best practise 美团技术沙龙04 - Kv Tair best practise
美团技术沙龙04 - Kv Tair best practise
 
Cephfs架构解读和测试分析
Cephfs架构解读和测试分析Cephfs架构解读和测试分析
Cephfs架构解读和测试分析
 
Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结
 
Hybrid Cloud Based on Ceph Object Storage - ShanChun
Hybrid Cloud Based on Ceph Object Storage - ShanChunHybrid Cloud Based on Ceph Object Storage - ShanChun
Hybrid Cloud Based on Ceph Object Storage - ShanChun
 
低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索
 
應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局
 
Mr&ueh数据库方面
Mr&ueh数据库方面Mr&ueh数据库方面
Mr&ueh数据库方面
 
开源应用日志收集系统
开源应用日志收集系统开源应用日志收集系统
开源应用日志收集系统
 
Redis cluster那些事儿
Redis cluster那些事儿Redis cluster那些事儿
Redis cluster那些事儿
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at Taobao
 
盛大游戏运维体系
盛大游戏运维体系盛大游戏运维体系
盛大游戏运维体系
 
Noip2 stack buffer overflow
Noip2 stack buffer overflowNoip2 stack buffer overflow
Noip2 stack buffer overflow
 

Similar to 大型视频网站单点分析与可用性提升-Qcon2011

开源+自主开发 - 淘宝软件基础设施构建实践
开源+自主开发  - 淘宝软件基础设施构建实践开源+自主开发  - 淘宝软件基础设施构建实践
开源+自主开发 - 淘宝软件基础设施构建实践Wensong Zhang
 
众行业公司系统架构案例介绍
众行业公司系统架构案例介绍众行业公司系统架构案例介绍
众行业公司系统架构案例介绍mysqlops
 
浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华zhuozhe
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践lovingprince58
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践drewz lin
 
构建基于Lamp的网站架构
构建基于Lamp的网站架构构建基于Lamp的网站架构
构建基于Lamp的网站架构Cosey Lee
 
淘宝对象存储与Cdn系统到服务
淘宝对象存储与Cdn系统到服务淘宝对象存储与Cdn系统到服务
淘宝对象存储与Cdn系统到服务drewz lin
 
Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务Wensong Zhang
 
阿里云技术实践
阿里云技术实践阿里云技术实践
阿里云技术实践drewz lin
 
优酷 Web网站架构案例分析
优酷   Web网站架构案例分析优酷   Web网站架构案例分析
优酷 Web网站架构案例分析George Ang
 
Key value store
Key value storeKey value store
Key value storexuanhan863
 
Youku arch qcon2009_beijing
Youku arch qcon2009_beijingYouku arch qcon2009_beijing
Youku arch qcon2009_beijingdrewz lin
 
Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统智杰 付
 
Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统Wensong Zhang
 
Taobao 海量图片存储与CDN系统02
Taobao 海量图片存储与CDN系统02Taobao 海量图片存储与CDN系统02
Taobao 海量图片存储与CDN系统02lovingprince58
 
Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统Michael Zhang
 
淘宝图片存储与Cdn系统
淘宝图片存储与Cdn系统淘宝图片存储与Cdn系统
淘宝图片存储与Cdn系统Dai Jun
 
稳定、高效、低碳 -淘宝软件基础设施构建实践
稳定、高效、低碳  -淘宝软件基础设施构建实践稳定、高效、低碳  -淘宝软件基础设施构建实践
稳定、高效、低碳 -淘宝软件基础设施构建实践Wensong Zhang
 
使用Nginx轻松实现开源负载均衡——对外版
使用Nginx轻松实现开源负载均衡——对外版使用Nginx轻松实现开源负载均衡——对外版
使用Nginx轻松实现开源负载均衡——对外版pigso
 

Similar to 大型视频网站单点分析与可用性提升-Qcon2011 (20)

开源+自主开发 - 淘宝软件基础设施构建实践
开源+自主开发  - 淘宝软件基础设施构建实践开源+自主开发  - 淘宝软件基础设施构建实践
开源+自主开发 - 淘宝软件基础设施构建实践
 
众行业公司系统架构案例介绍
众行业公司系统架构案例介绍众行业公司系统架构案例介绍
众行业公司系统架构案例介绍
 
浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华
 
Taobao base
Taobao baseTaobao base
Taobao base
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践
 
构建基于Lamp的网站架构
构建基于Lamp的网站架构构建基于Lamp的网站架构
构建基于Lamp的网站架构
 
淘宝对象存储与Cdn系统到服务
淘宝对象存储与Cdn系统到服务淘宝对象存储与Cdn系统到服务
淘宝对象存储与Cdn系统到服务
 
Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务
 
阿里云技术实践
阿里云技术实践阿里云技术实践
阿里云技术实践
 
优酷 Web网站架构案例分析
优酷   Web网站架构案例分析优酷   Web网站架构案例分析
优酷 Web网站架构案例分析
 
Key value store
Key value storeKey value store
Key value store
 
Youku arch qcon2009_beijing
Youku arch qcon2009_beijingYouku arch qcon2009_beijing
Youku arch qcon2009_beijing
 
Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统
 
Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统
 
Taobao 海量图片存储与CDN系统02
Taobao 海量图片存储与CDN系统02Taobao 海量图片存储与CDN系统02
Taobao 海量图片存储与CDN系统02
 
Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统
 
淘宝图片存储与Cdn系统
淘宝图片存储与Cdn系统淘宝图片存储与Cdn系统
淘宝图片存储与Cdn系统
 
稳定、高效、低碳 -淘宝软件基础设施构建实践
稳定、高效、低碳  -淘宝软件基础设施构建实践稳定、高效、低碳  -淘宝软件基础设施构建实践
稳定、高效、低碳 -淘宝软件基础设施构建实践
 
使用Nginx轻松实现开源负载均衡——对外版
使用Nginx轻松实现开源负载均衡——对外版使用Nginx轻松实现开源负载均衡——对外版
使用Nginx轻松实现开源负载均衡——对外版
 

More from Yiwei Ma

Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconYiwei Ma
 
Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconYiwei Ma
 
Taobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qconTaobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qconYiwei Ma
 
Alibaba server-zhangxuseng-qcon
Alibaba server-zhangxuseng-qconAlibaba server-zhangxuseng-qcon
Alibaba server-zhangxuseng-qconYiwei Ma
 
Zhongxing practice-suchunshan-qcon
Zhongxing practice-suchunshan-qconZhongxing practice-suchunshan-qcon
Zhongxing practice-suchunshan-qconYiwei Ma
 
Taobao practice-liyu-qcon
Taobao practice-liyu-qconTaobao practice-liyu-qcon
Taobao practice-liyu-qconYiwei Ma
 
Thoughtworks practice-hukai-qcon
Thoughtworks practice-hukai-qconThoughtworks practice-hukai-qcon
Thoughtworks practice-hukai-qconYiwei Ma
 
Ufida design-chijianqiang-qcon
Ufida design-chijianqiang-qconUfida design-chijianqiang-qcon
Ufida design-chijianqiang-qconYiwei Ma
 
Spring design-juergen-qcon
Spring design-juergen-qconSpring design-juergen-qcon
Spring design-juergen-qconYiwei Ma
 
Netflix web-adrian-qcon
Netflix web-adrian-qconNetflix web-adrian-qcon
Netflix web-adrian-qconYiwei Ma
 
Google arch-fangkun-qcon
Google arch-fangkun-qconGoogle arch-fangkun-qcon
Google arch-fangkun-qconYiwei Ma
 
Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconYiwei Ma
 
Alibaba arch-jiangtao-qcon
Alibaba arch-jiangtao-qconAlibaba arch-jiangtao-qcon
Alibaba arch-jiangtao-qconYiwei Ma
 
Twitter keynote-evan-qcon
Twitter keynote-evan-qconTwitter keynote-evan-qcon
Twitter keynote-evan-qconYiwei Ma
 
Netflix keynote-adrian-qcon
Netflix keynote-adrian-qconNetflix keynote-adrian-qcon
Netflix keynote-adrian-qconYiwei Ma
 
Facebook keynote-nicolas-qcon
Facebook keynote-nicolas-qconFacebook keynote-nicolas-qcon
Facebook keynote-nicolas-qconYiwei Ma
 
Domainlang keynote-eric-qcon
Domainlang keynote-eric-qconDomainlang keynote-eric-qcon
Domainlang keynote-eric-qconYiwei Ma
 
Devjam keynote-david-qcon
Devjam keynote-david-qconDevjam keynote-david-qcon
Devjam keynote-david-qconYiwei Ma
 
Baidu keynote-wubo-qcon
Baidu keynote-wubo-qconBaidu keynote-wubo-qcon
Baidu keynote-wubo-qconYiwei Ma
 
淘宝线上线下性能跟踪体系和容量规划-Qcon2011
淘宝线上线下性能跟踪体系和容量规划-Qcon2011淘宝线上线下性能跟踪体系和容量规划-Qcon2011
淘宝线上线下性能跟踪体系和容量规划-Qcon2011Yiwei Ma
 

More from Yiwei Ma (20)

Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qcon
 
Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qcon
 
Taobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qconTaobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qcon
 
Alibaba server-zhangxuseng-qcon
Alibaba server-zhangxuseng-qconAlibaba server-zhangxuseng-qcon
Alibaba server-zhangxuseng-qcon
 
Zhongxing practice-suchunshan-qcon
Zhongxing practice-suchunshan-qconZhongxing practice-suchunshan-qcon
Zhongxing practice-suchunshan-qcon
 
Taobao practice-liyu-qcon
Taobao practice-liyu-qconTaobao practice-liyu-qcon
Taobao practice-liyu-qcon
 
Thoughtworks practice-hukai-qcon
Thoughtworks practice-hukai-qconThoughtworks practice-hukai-qcon
Thoughtworks practice-hukai-qcon
 
Ufida design-chijianqiang-qcon
Ufida design-chijianqiang-qconUfida design-chijianqiang-qcon
Ufida design-chijianqiang-qcon
 
Spring design-juergen-qcon
Spring design-juergen-qconSpring design-juergen-qcon
Spring design-juergen-qcon
 
Netflix web-adrian-qcon
Netflix web-adrian-qconNetflix web-adrian-qcon
Netflix web-adrian-qcon
 
Google arch-fangkun-qcon
Google arch-fangkun-qconGoogle arch-fangkun-qcon
Google arch-fangkun-qcon
 
Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qcon
 
Alibaba arch-jiangtao-qcon
Alibaba arch-jiangtao-qconAlibaba arch-jiangtao-qcon
Alibaba arch-jiangtao-qcon
 
Twitter keynote-evan-qcon
Twitter keynote-evan-qconTwitter keynote-evan-qcon
Twitter keynote-evan-qcon
 
Netflix keynote-adrian-qcon
Netflix keynote-adrian-qconNetflix keynote-adrian-qcon
Netflix keynote-adrian-qcon
 
Facebook keynote-nicolas-qcon
Facebook keynote-nicolas-qconFacebook keynote-nicolas-qcon
Facebook keynote-nicolas-qcon
 
Domainlang keynote-eric-qcon
Domainlang keynote-eric-qconDomainlang keynote-eric-qcon
Domainlang keynote-eric-qcon
 
Devjam keynote-david-qcon
Devjam keynote-david-qconDevjam keynote-david-qcon
Devjam keynote-david-qcon
 
Baidu keynote-wubo-qcon
Baidu keynote-wubo-qconBaidu keynote-wubo-qcon
Baidu keynote-wubo-qcon
 
淘宝线上线下性能跟踪体系和容量规划-Qcon2011
淘宝线上线下性能跟踪体系和容量规划-Qcon2011淘宝线上线下性能跟踪体系和容量规划-Qcon2011
淘宝线上线下性能跟踪体系和容量规划-Qcon2011
 

大型视频网站单点分析与可用性提升-Qcon2011

  • 2. 议程  单点分类  常规去单点方法介绍  案例分析  总结
  • 3. 单点分类  数据单点  应用单点  性能单点  地域单点
  • 4. 常规去单点方法介绍  DNS、调度  虚拟IP、nginx upstream、ha-proxy  主从热备、RAID、分布式存储
  • 5. 后台流程 用户 上传接口 转码集群 分发中心 编辑 内容平台 冷点存储 热点存储
  • 6. 服务流程 1 用户 播放器 DNS 2 3 调度接口 存储数据库 冷热点存储
  • 7. 上传接口  问题:  全国用户访问  解决方法:  使用动态DNS按地域分调用户  域名再做随机哈希:upload1 … upload4
  • 8. 内容平台  分析:  编辑主要集中在北京甚至公司内网  外地编辑配置合适的代理即可
  • 9. 转码集群  情况和问题:  转码设备集中在北京  全国的上传接口都要往转码集群传送文件  大的文件会消耗较长时间、阻塞队列  解决办法:  使用较好的链路(北京电信、北京网通)  未来改成边缘转码结构,但是分发系统也要统一规划 调整  按视频事长划分不同的队列(长视频转码队列、普通 队列、短视频转码队列)
  • 10. 分发中心  情况分析  转码中心和分发中心都处在北京,彼此网络畅通,转码后的 视频文件能够瞬间传到分发中心  抓站程序和编辑在夜间上传大量视频,无法在有限时间内( 一天)传送出去,中心出口带宽成为瓶颈  全网都从中央抓取视频,速度太慢  如果边缘的服务器尚未完成视频抓取,那么用户流量就全压 在中央。  解决方法  P2P方式,或者叫SP2SP方式,只要从中央传送出去一份,外面 的各服务器就会就近互相抓取。  切割视频,减小单个视频大小  升级成按块分发。  升级使调度精确到设备。  未来转码集群边缘化了,分发中心也不存在了。
  • 11. 服务节点 存储1 存储2 虚拟IP C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 虚拟IP Domain1 Domain2 Domain3 Domain4 Domain5 Domain6
  • 12. 服务节点分析  现状  存储和cache的容量比大概是6:1  每两台cache存储的内容相同  设备占用较多,内容冗余较多  未来措施  考虑去除cache层  考虑一致性哈希  IP对外(调度精确到设备)
  • 13. 调度系统  现状  调度数据库采用master/slave模式,其读库在全国有一定 分布  调度设备的分布比读库的分布要广  由用户访问触发,在调度设备上对部分数据做本地 cache  本地cache以视频id计算二级hash目录,每个视频的相关信 息记录在一个文件里  热点视频的本地cache是主动推送的  写库是单点,不过主要是内部系统写  措施  未来考虑采用mysql cluster  分表写入
  • 14. 播放器  一个点不可用自动尝试其他点  该视频所有点均没有时,根据标题搜索播放相似视频
  • 15. 审核系统  人手不够  机器预审  12画面  减少操作  允许误杀,接投诉可快速回复
  • 16. 评论和点击  实时更新memcached  memcached每5分钟写入数据库
  • 17. 其他细节  squid单进程浪费多核运算能力(启多实例或者把运算分到 外部进程)  单个磁盘损坏可能会吊死所有进程(进程和磁盘绑定)  使用容量较小的磁盘,提高并发IO能力
  • 18. 总结  尽量使所有系统都可横向扩展  提前考虑系统中的大文件传输,并尽量将其边缘化  分析所有环节、尽量减少环节  避免重复计算(如:IP归属)  cache